跳到主要内容

Julia 提升

阐述

promote 函数取任意数量的实参,返回一个相同大小的元组,将各个实参转换到一个相同的类型。

常见的基本数学类型都有相应的提升定义以使其符合直觉。

对语言的提升功能的扩展是通过给 promote_rule 函数提供更多方法实现的,它们接受两个类型并返回提升后的类型。这个函数会被 promote_type 调用(补充上对称性),然后再被 promote 调用。

实例

四则运算的兜底方法可以使用 promote

+(x::Number, y::Number) = +(promote(x,y)...)
-(x::Number, y::Number) = -(promote(x,y)...)
*(x::Number, y::Number) = *(promote(x,y)...)
/(x::Number, y::Number) = /(promote(x,y)...)

构造函数中使用 promote

Rational(n::Integer, d::Integer) = Rational(promote(n,d)...)

性质

相关内容

参考文献